package com.ruoyi.exam.vo;

import lombok.Data;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 题库题目答题信息VO
 * 用于返回用户在特定题库中特定题目的答题情况
 *
 * @author Tellsea
 * @date 2025-12-19
 */
@Data
@Accessors(chain = true)
public class ExamBankQuestionAnswerInfoVo {

    /**
     * 题目基本信息
     */
    private Long questionId;
    private String questionTitle;
    private String questionContent;
    private String questionType;
    private String difficultyLevel;
    private BigDecimal score;
    private String questionAnalysis;

    /**
     * 题目选项
     */
    private List<ExamQuestionOptionVo> options;

    /**
     * 题目答案
     */
    private List<ExamQuestionAnswerVo> answers;

    /**
     * 用户在此题库中对此题的答题记录
     */
    private ExamUserPracticeRecordVo userRecord;

    /**
     * 用户题库进度信息
     */
    private ExamUserBankProgressVo userProgress;

    /**
     * 题目在题库中的序号
     */
    private Long sortOrder;

    /**
     * 是否已答题
     */
    private Boolean hasAnswered;

    /**
     * 是否答对
     */
    private Boolean isCorrect;

    /**
     * 用户选择的选项
     */
    private String selectedOptions;

    /**
     * 答题时间（秒）
     */
    private Long answerTime;

    /**
     * 答题时间
     */
    private Date answerDate;

    /**
     * 是否有下一题
     */
    private Boolean hasNext;

    /**
     * 下一题信息
     */
    private NextQuestionInfo nextQuestion;

    /**
     * 是否收藏
     */
    private Boolean isFavorite;

    @Data
    @Accessors(chain = true)
    public static class NextQuestionInfo {
        private Long questionId;
        private Long sortOrder;
        private String questionTitle;
    }
} 